--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 328cc80738b1b46713866ba16af4e9d455158833
Parents : a50a7bd
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-10T01:31:24-05:00
feat(i18n): update localization strings for multiple languages
Changes
8 files changed, 207 insertions(+), 207 deletions(-)
Diff
diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json
index bfc7bdda..d66991b3 100644
--- a/meshchatx/src/frontend/locales/de.json
+++ b/meshchatx/src/frontend/locales/de.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "Identitätswiederherstellung fehlgeschlagen",
"no_identity_available": "Keine Identität verfügbar",
"message_count": "{count} Nachrichten",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Hiermit wird nur der Identitätsschlüssel wiederhergestellt. Nachrichtenverlauf und Einstellungen erfordern eine Datenbank-Sicherungs-ZIP unter Über.",
+ "switch_after_restore_confirm": "Zur wiederhergestellten Identität \"{name}\" wechseln?",
+ "identity_restore_empty_file": "Identitätsdatei ist leer.",
+ "identity_restore_file_too_large": "Identitätsdatei ist zu groß."
},
"contacts": {
"title": "Kontakte",
@@ -1901,10 +1901,10 @@
"forwarding_to": "Weiterleitung an: {hash}",
"source_filter_display": "Quellfilter: {hash}",
"delete_confirm": "Sind Sie sicher, dass Sie diese Regel löschen möchten?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "Weiterleitungs-Hash muss ein 32-stelliger Hex-Wert sein",
+ "send_failed": "Weiterleitungs-Aktualisierung konnte nicht gesendet werden (WebSocket getrennt)",
+ "rule_added": "Weiterleitungsregel hinzugefügt",
+ "rule_deleted": "Weiterleitungsregel gelöscht"
},
"archives": {
"description": "In Ihrem lokalen Archiv gespeicherte Nomad-Seiten durchsuchen.",
@@ -2036,10 +2036,10 @@
"purge_confirm": "Alle Ankündigungswarteschlangen leeren? Dies kann nicht rückgängig gemacht werden.",
"queues_purged": "Ankündigungswarteschlangen geleert",
"failed_purge": "Warteschlangen konnten nicht geleert werden",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Pfad angefordert für {hash}...",
+ "drop_confirm": "Pfad zu {hash} wirklich löschen?",
+ "drop_via_confirm": "ALLE Pfade über {hash} löschen?",
+ "invalid_hops": "Hops-Filter muss eine Zahl sein"
},
"rnpath_trace": {
"title": "RNS Pfad-Verfolgung",
@@ -2067,10 +2067,10 @@
"propagation_nodes": {
"title": "Propagationsknoten",
"description": "Bevorzugte Mesh-Propagationsknoten wählen, Live-Statistiken sehen und schnelle Pfadprüfungen ausführen.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Propagation-Nodes konnten nicht geladen werden",
+ "local_restarted": "Lokaler Propagation-Node neu gestartet",
+ "local_stopped": "Lokaler Propagation-Node gestoppt",
+ "local_started": "Lokaler Propagation-Node gestartet"
},
"sieve_filters": {
"title": "Sieb-Filter",
@@ -2687,8 +2687,8 @@
"airtime": "Sendezeit",
"channel_load": "Kanallast",
"blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_publishing": "Veröffentlicht",
+ "blackhole_inactive": "Inaktiv"
},
"translator": {
"text_translation": "Textübersetzung",
@@ -3038,13 +3038,13 @@
"propagation_enable_auto": "Automatische Konfiguration aktivieren",
"propagation_skip_auto": "Manuelle Konfiguration",
"auto_propagation_enabled": "Auto-Propagation aktiviert",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "Identitätsdatei ist leer.",
+ "identity_import_file_too_large": "Identitätsdatei ist zu groß.",
+ "identity_import_key_only_hint": "Dies importiert nur den Identitätsschlüssel. Um Nachrichten und Einstellungen wiederherzustellen, verwende Über → Aus Datei wiederherstellen mit einer Datenbank-Sicherungs-ZIP.",
+ "identity_file_overrides_base32": "Eine ausgewählte Datei wird anstelle des eingefügten base32-Schlüssels verwendet.",
+ "identity_import_pending_activate": "Du hast eine Identität importiert, aber noch nicht aktiviert. Jetzt aktivieren?",
+ "identity_import_pending_kept": "Importierte Identität wurde gespeichert, aber nicht aktiviert. Später unter Identitäten wechseln.",
+ "identity_default_delete_failed": "Importierte Identität ist aktiv, aber die Standard-Identität konnte nicht entfernt werden."
},
"command_palette": {
"search_placeholder": "Befehle, Routen oder Peers suchen",
diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json
index 71a9a8fd..0dba72e1 100644
--- a/meshchatx/src/frontend/locales/es.json
+++ b/meshchatx/src/frontend/locales/es.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "La recuperación de identidad falló",
"no_identity_available": "No hay identidad disponible",
"message_count": "Mensajes{count}",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Esto restaura solo la clave de identidad. El historial de mensajes y la configuración requieren una copia ZIP de la base de datos desde Acerca de.",
+ "switch_after_restore_confirm": "¿Cambiar a la identidad restaurada \"{name}\" ahora?",
+ "identity_restore_empty_file": "El archivo de identidad está vacío.",
+ "identity_restore_file_too_large": "El archivo de identidad es demasiado grande."
},
"about": {
"title": "Acerca de",
@@ -2018,10 +2018,10 @@
"forwarding_to": "Hacia:{hash}",
"source_filter_display": "Filtro fuente:{hash}",
"delete_confirm": "¿Estás seguro de querer borrar esta regla?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "El hash de reenvío debe ser un valor hexadecimal de 32 caracteres",
+ "send_failed": "No se pudo enviar la actualización de reenvío (WebSocket desconectado)",
+ "rule_added": "Regla de reenvío añadida",
+ "rule_deleted": "Regla de reenvío eliminada"
},
"archives": {
"description": "Buscar páginas Nomad Network almacenadas en su archivo local.",
@@ -2153,10 +2153,10 @@
"purge_confirm": "¿Purge anuncian colas? Esto no puede ser deshecho.",
"queues_purged": "Anuncio queues purged",
"failed_purge": "Error al purgar colas",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Ruta solicitada para {hash}...",
+ "drop_confirm": "¿Eliminar la ruta a {hash}?",
+ "drop_via_confirm": "¿Eliminar TODAS las rutas a través de {hash}?",
+ "invalid_hops": "El filtro de saltos debe ser un número"
},
"rnpath_trace": {
"title": "RNS Path Trace",
@@ -2184,10 +2184,10 @@
"propagation_nodes": {
"title": "Nodos de propagación",
"description": "Elija nodos de propagación preferidos, vea estadísticas en vivo y compruebe rutas.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Error al cargar nodos de propagación",
+ "local_restarted": "Nodo de propagación local reiniciado",
+ "local_stopped": "Nodo de propagación local detenido",
+ "local_started": "Nodo de propagación local iniciado"
},
"sieve_filters": {
"title": "Filtros tamiz",
@@ -2803,9 +2803,9 @@
"outgoing_announces": "Anuncios salientes",
"airtime": "Horas aéreas",
"channel_load": "Carga de Canal",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "Agujero negro: {state}",
+ "blackhole_publishing": "Publicando",
+ "blackhole_inactive": "Inactivo"
},
"translator": {
"text_translation": "Traducción de texto",
@@ -3207,13 +3207,13 @@
"propagation_enable_auto": "Activar la configuración automática",
"propagation_skip_auto": "Configurar manualmente / Saltar",
"auto_propagation_enabled": "Autopropagación habilitada",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "El archivo de identidad está vacío.",
+ "identity_import_file_too_large": "El archivo de identidad es demasiado grande.",
+ "identity_import_key_only_hint": "Esto importa solo tu clave de identidad. Para restaurar mensajes y configuración, usa Acerca de → Restaurar desde archivo con un ZIP de copia de seguridad de la base de datos.",
+ "identity_file_overrides_base32": "Un archivo seleccionado se usará en lugar de la clave base32 pegada.",
+ "identity_import_pending_activate": "Importaste una identidad pero aún no la has activado. ¿Activar ahora?",
+ "identity_import_pending_kept": "La identidad importada se guardó pero no se activó. Cambia a ella más tarde desde Identidades.",
+ "identity_default_delete_failed": "La identidad importada está activa, pero la identidad predeterminada no se pudo eliminar."
},
"command_palette": {
"search_placeholder": "Buscar comandos, rutas o pares",
diff --git a/meshchatx/src/frontend/locales/fi.json b/meshchatx/src/frontend/locales/fi.json
index 5601d7b4..0b58bd7a 100644
--- a/meshchatx/src/frontend/locales/fi.json
+++ b/meshchatx/src/frontend/locales/fi.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "Identiteetin palautus epäonnistui",
"no_identity_available": "Identiteettiä ei saatavilla",
"message_count": "{count} viestiä",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Tämä palauttaa vain identiteettiavaimen. Viestihistoria ja asetukset vaativat tietokannan varmuuskopio-ZIP:n Tietoja-osiosta.",
+ "switch_after_restore_confirm": "Vaihda palautettuun identiteettiin \"{name}\" nyt?",
+ "identity_restore_empty_file": "Identiteettitiedosto on tyhjä.",
+ "identity_restore_file_too_large": "Identiteettitiedosto on liian suuri."
},
"about": {
"title": "Tietoja",
@@ -2018,10 +2018,10 @@
"forwarding_to": "Välitetään kohteeseen: {hash}",
"source_filter_display": "Lähteen suodatin: {hash}",
"delete_confirm": "Haluatko varmasti poistaa tämän säännön?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "Edelleenlähetyksen hashin on oltava 32 merkkiä pitkä heksadesimaaliarvo",
+ "send_failed": "Edelleenlähetyksen päivitystä ei voitu lähettää (WebSocket katkaistu)",
+ "rule_added": "Edelleenlähetyssääntö lisätty",
+ "rule_deleted": "Edelleenlähetyssääntö poistettu"
},
"archives": {
"description": "Etsi Nomad Network -sivuja paikallisesta arkistosta.",
@@ -2153,10 +2153,10 @@
"purge_confirm": "Tyhjennetäänkö kaikki ilmoitusjonot? Tätä ei voi peruuttaa.",
"queues_purged": "Ilmoitusjonot tyhjennetty",
"failed_purge": "Jonojen tyhjennys epäonnistui",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Polkua pyydetty kohteelle {hash}...",
+ "drop_confirm": "Haluatko varmasti pudottaa polun kohteeseen {hash}?",
+ "drop_via_confirm": "Pudotetaanko KAIKKI polut kohteen {hash} kautta?",
+ "invalid_hops": "Hyppyjen suodattimen on oltava numero"
},
"rnpath_trace": {
"title": "RNS Path Trace",
@@ -2184,10 +2184,10 @@
"propagation_nodes": {
"title": "Etenemissolmut",
"description": "Valitse haluamasi verkon etenemissolmut, tarkkaile reaaliaikaisia tilastoja ja suorita nopeita polkutarkistuksia.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Propagointisolmujen lataus epäonnistui",
+ "local_restarted": "Paikallinen propagointisolmu käynnistetty uudelleen",
+ "local_stopped": "Paikallinen propagointisolmu pysäytetty",
+ "local_started": "Paikallinen propagointisolmu käynnistetty"
},
"sieve_filters": {
"title": "Seulontasuodattimet",
@@ -2984,9 +2984,9 @@
"outgoing_announces": "Lähtevät ilmoitukset",
"airtime": "Ilma-aika",
"channel_load": "Kanavakuorma",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "Musta aukko: {state}",
+ "blackhole_publishing": "Julkaistaan",
+ "blackhole_inactive": "Epäaktiivinen"
},
"translator": {
"text_translation": "Tekstin käännös",
@@ -3405,13 +3405,13 @@
"propagation_enable_auto": "Ota automaattikonfigurointi käyttöön",
"propagation_skip_auto": "Määritä manuaalisesti / Ohita",
"auto_propagation_enabled": "Automaattinen levitys käytössä",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "Identiteettitiedosto on tyhjä.",
+ "identity_import_file_too_large": "Identiteettitiedosto on liian suuri.",
+ "identity_import_key_only_hint": "Tämä tuo vain identiteettiavaimesi. Palauttaaksesi viestit ja asetukset, käytä Tietoja → Palauta tiedostosta tietokannan varmuuskopio-ZIPillä.",
+ "identity_file_overrides_base32": "Valittua tiedostoa käytetään liitetyn base32-avaimen sijasta.",
+ "identity_import_pending_activate": "Toit identiteetin, mutta et ole vielä aktivoinut sitä. Aktivoi nyt?",
+ "identity_import_pending_kept": "Tuotu identiteetti tallennettiin, mutta sitä ei aktivoitu. Vaihda siihen myöhemmin Identiteetit-osiosta.",
+ "identity_default_delete_failed": "Tuotu identiteetti on aktiivinen, mutta oletusidentiteettiä ei voitu poistaa."
},
"command_palette": {
"search_placeholder": "Hae komentoja, reittejä tai vertaisia",
diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json
index 9e33b12d..1628177e 100644
--- a/meshchatx/src/frontend/locales/fr.json
+++ b/meshchatx/src/frontend/locales/fr.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "La restauration de l'identité a échoué",
"no_identity_available": "Aucune identité disponible",
"message_count": "Messages{count}",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Cela restaure uniquement la clé d'identité. L'historique des messages et les paramètres nécessitent un ZIP de sauvegarde de la base de données depuis À propos.",
+ "switch_after_restore_confirm": "Passer à l'identité restaurée \"{name}\" maintenant ?",
+ "identity_restore_empty_file": "Le fichier d'identité est vide.",
+ "identity_restore_file_too_large": "Le fichier d'identité est trop volumineux."
},
"about": {
"title": "À propos",
@@ -2018,10 +2018,10 @@
"forwarding_to": "Transmission vers : {hash}",
"source_filter_display": "Filtre source : {hash}",
"delete_confirm": "Voulez-vous vraiment supprimer cette règle ?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "Le hash de transfert doit être une valeur hexadécimale de 32 caractères",
+ "send_failed": "Impossible d'envoyer la mise à jour de transfert (WebSocket déconnecté)",
+ "rule_added": "Règle de transfert ajoutée",
+ "rule_deleted": "Règle de transfert supprimée"
},
"archives": {
"description": "Rechercher les pages du réseau Nomad stockées dans votre archive locale.",
@@ -2153,10 +2153,10 @@
"purge_confirm": "Purger toutes les files d'attente ? Cela ne peut être annulé.",
"queues_purged": "Annoncer les files d'attente purgées",
"failed_purge": "Impossible de purger les files d'attente",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Chemin demandé pour {hash}...",
+ "drop_confirm": "Supprimer le chemin vers {hash} ?",
+ "drop_via_confirm": "Supprimer TOUS les chemins via {hash} ?",
+ "invalid_hops": "Le filtre de sauts doit être un nombre"
},
"rnpath_trace": {
"title": "Trace de chemin RNS",
@@ -2184,10 +2184,10 @@
"propagation_nodes": {
"title": "Nœuds de propagation",
"description": "Choisissez des nœuds de propagation préférés, consultez des statistiques en direct et lancez des vérifications de chemin.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Échec du chargement des nœuds de propagation",
+ "local_restarted": "Nœud de propagation local redémarré",
+ "local_stopped": "Nœud de propagation local arrêté",
+ "local_started": "Nœud de propagation local démarré"
},
"sieve_filters": {
"title": "Filtres tamis",
@@ -2803,9 +2803,9 @@
"outgoing_announces": "Annonces",
"airtime": "Temps d'antenne",
"channel_load": "Chargement du canal",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "Trou noir : {state}",
+ "blackhole_publishing": "Publication",
+ "blackhole_inactive": "Inactif"
},
"translator": {
"text_translation": "Traduction textuelle",
@@ -3207,13 +3207,13 @@
"propagation_enable_auto": "Activer la configuration automatique",
"propagation_skip_auto": "Configurer manuellement / Passer",
"auto_propagation_enabled": "Autopropagation activée",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "Le fichier d'identité est vide.",
+ "identity_import_file_too_large": "Le fichier d'identité est trop volumineux.",
+ "identity_import_key_only_hint": "Cela importe uniquement votre clé d'identité. Pour restaurer les messages et les paramètres, utilisez À propos → Restaurer à partir d'un fichier avec un ZIP de sauvegarde de la base de données.",
+ "identity_file_overrides_base32": "Un fichier sélectionné sera utilisé à la place de la clé base32 collée.",
+ "identity_import_pending_activate": "Vous avez importé une identité mais ne l'avez pas encore activée. L'activer maintenant ?",
+ "identity_import_pending_kept": "L'identité importée a été enregistrée mais pas activée. Changez plus tard depuis Identités.",
+ "identity_default_delete_failed": "L'identité importée est active, mais l'identité par défaut n'a pas pu être supprimée."
},
"command_palette": {
"search_placeholder": "Commandes de recherche, itinéraires ou pairs",
diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json
index 353f4090..846cd263 100644
--- a/meshchatx/src/frontend/locales/it.json
+++ b/meshchatx/src/frontend/locales/it.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "Ripristino identità fallito",
"no_identity_available": "Nessuna identità disponibile",
"message_count": "{count} messaggi",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Questo ripristina solo la chiave d'identità. La cronologia dei messaggi e le impostazioni richiedono un backup ZIP del database da Informazioni.",
+ "switch_after_restore_confirm": "Passare all'identità ripristinata \"{name}\" ora?",
+ "identity_restore_empty_file": "Il file di identità è vuoto.",
+ "identity_restore_file_too_large": "Il file di identità è troppo grande."
},
"contacts": {
"title": "Contatti",
@@ -2070,10 +2070,10 @@
"forwarding_to": "Inoltro a: {hash}",
"source_filter_display": "Filtro sorgente: {hash}",
"delete_confirm": "Sei sicuro di voler eliminare questa regola?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "L'hash di inoltro deve essere un valore esadecimale di 32 caratteri",
+ "send_failed": "Impossibile inviare l'aggiornamento di inoltro (WebSocket disconnesso)",
+ "rule_added": "Regola di inoltro aggiunta",
+ "rule_deleted": "Regola di inoltro eliminata"
},
"archives": {
"description": "Cerca pagine Nomad salvate nel tuo archivio locale.",
@@ -2205,10 +2205,10 @@
"purge_confirm": "Svuotare tutte le code di annuncio? L'azione non può essere annullata.",
"queues_purged": "Code di annuncio svuotate",
"failed_purge": "Impossibile svuotare le code",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Percorso richiesto per {hash}...",
+ "drop_confirm": "Eliminare il percorso verso {hash}?",
+ "drop_via_confirm": "Eliminare TUTTI i percorsi via {hash}?",
+ "invalid_hops": "Il filtro hop deve essere un numero"
},
"rnpath_trace": {
"title": "RNS Path Trace",
@@ -2236,10 +2236,10 @@
"propagation_nodes": {
"title": "Nodi di propagazione",
"description": "Scegli nodi di propagazione preferiti, controlla statistiche in tempo reale ed esegui verifiche rapide sui percorsi.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Caricamento nodi di propagazione fallito",
+ "local_restarted": "Nodo di propagazione locale riavviato",
+ "local_stopped": "Nodo di propagazione locale fermato",
+ "local_started": "Nodo di propagazione locale avviato"
},
"sieve_filters": {
"title": "Filtri a setaccio",
@@ -2855,9 +2855,9 @@
"outgoing_announces": "Annunci in Uscita",
"airtime": "Tempo d'antenna",
"channel_load": "Carico Canale",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "Buco nero: {state}",
+ "blackhole_publishing": "Pubblicazione",
+ "blackhole_inactive": "Inattivo"
},
"translator": {
"text_translation": "Traduzione Testo",
@@ -3207,13 +3207,13 @@
"propagation_enable_auto": "Abilita configurazione automatica",
"propagation_skip_auto": "Configurazione manuale",
"auto_propagation_enabled": "Auto-propagazione abilitata",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "Il file di identità è vuoto.",
+ "identity_import_file_too_large": "Il file di identità è troppo grande.",
+ "identity_import_key_only_hint": "Questo importa solo la tua chiave d'identità. Per ripristinare messaggi e impostazioni, usa Informazioni → Ripristina da file con un backup ZIP del database.",
+ "identity_file_overrides_base32": "Un file selezionato verrà utilizzato al posto della chiave base32 incollata.",
+ "identity_import_pending_activate": "Hai importato un'identità ma non l'hai ancora attivata. Attivarla ora?",
+ "identity_import_pending_kept": "L'identità importata è stata salvata ma non attivata. Passaci più tardi da Identità.",
+ "identity_default_delete_failed": "L'identità importata è attiva, ma l'identità predefinita non può essere rimossa."
},
"command_palette": {
"search_placeholder": "Cerca comandi, percorsi o peer",
diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json
index c31b8265..dba8b7c8 100644
--- a/meshchatx/src/frontend/locales/nl.json
+++ b/meshchatx/src/frontend/locales/nl.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "Identiteitsherstel is mislukt",
"no_identity_available": "Geen identiteit beschikbaar",
"message_count": "{count}-berichten",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Dit herstelt alleen de identiteitssleutel. Berichtgeschiedenis en instellingen vereisen een database-backup-ZIP via Over.",
+ "switch_after_restore_confirm": "Overschakelen naar herstelde identiteit \"{name}\"?",
+ "identity_restore_empty_file": "Identiteitsbestand is leeg.",
+ "identity_restore_file_too_large": "Identiteitsbestand is te groot."
},
"about": {
"title": "Info",
@@ -2018,10 +2018,10 @@
"forwarding_to": "Doorsturen naar:{hash}",
"source_filter_display": "Bronfilter:{hash}",
"delete_confirm": "Weet u zeker dat u deze regel wilt verwijderen?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "Doorstuurlings-hash moet een 32-tekens hexadecimale waarde zijn",
+ "send_failed": "Kon doorstuurbijwerking niet verzenden (WebSocket verbroken)",
+ "rule_added": "Doorstuurlingsregel toegevoegd",
+ "rule_deleted": "Doorstuurlingsregel verwijderd"
},
"archives": {
"description": "Zoek Nomad Network pagina's opgeslagen in uw lokale archief.",
@@ -2153,10 +2153,10 @@
"purge_confirm": "Alle rijen wissen? Dit kan niet ongedaan worden gemaakt.",
"queues_purged": "Aankondigen wachtrijen gewist",
"failed_purge": "Kon wachtrijen niet wissen",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Pad aangevraagd voor {hash}...",
+ "drop_confirm": "Pad naar {hash} verwijderen?",
+ "drop_via_confirm": "ALLE paden via {hash} verwijderen?",
+ "invalid_hops": "Hops-filter moet een getal zijn"
},
"rnpath_trace": {
"title": "RNS-padspoor",
@@ -2184,10 +2184,10 @@
"propagation_nodes": {
"title": "Propagatienodes",
"description": "Kies voorkeurs-propagatienodes, bekijk live statistieken en voer snelle padcontroles uit.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Laden van propagatieknooppunten mislukt",
+ "local_restarted": "Lokaal propagatieknooppunt herstart",
+ "local_stopped": "Lokaal propagatieknooppunt gestopt",
+ "local_started": "Lokaal propagatieknooppunt gestart"
},
"sieve_filters": {
"title": "Zeeffilters",
@@ -2803,9 +2803,9 @@
"outgoing_announces": "Uitgaande mededelingen",
"airtime": "Luchttijd",
"channel_load": "Kanaal laden",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "Zwart gat: {state}",
+ "blackhole_publishing": "Publiceren",
+ "blackhole_inactive": "Inactief"
},
"translator": {
"text_translation": "Tekstvertaling",
@@ -3207,13 +3207,13 @@
"propagation_enable_auto": "Auto-configuratie inschakelen",
"propagation_skip_auto": "Handmatig instellen / overslaan",
"auto_propagation_enabled": "Auto-propagatie ingeschakeld",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "Identiteitsbestand is leeg.",
+ "identity_import_file_too_large": "Identiteitsbestand is te groot.",
+ "identity_import_key_only_hint": "Dit importeert alleen je identiteitssleutel. Om berichten en instellingen te herstellen, gebruik Over → Herstellen uit bestand met een database-backup-ZIP.",
+ "identity_file_overrides_base32": "Een geselecteerd bestand wordt gebruikt in plaats van de geplakte base32-sleutel.",
+ "identity_import_pending_activate": "Je hebt een identiteit geïmporteerd maar nog niet geactiveerd. Nu activeren?",
+ "identity_import_pending_kept": "Geïmporteerde identiteit is opgeslagen maar niet geactiveerd. Schakel later over via Identiteiten.",
+ "identity_default_delete_failed": "Geïmporteerde identiteit is actief, maar de standaardidentiteit kon niet worden verwijderd."
},
"command_palette": {
"search_placeholder": "Zoekopdrachten, routes of collega's",
diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json
index e9639595..679b3a33 100644
--- a/meshchatx/src/frontend/locales/ru.json
+++ b/meshchatx/src/frontend/locales/ru.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "Не удалось восстановить идентификатор",
"no_identity_available": "Нет доступного идентификатора",
"message_count": "{count} сообщений",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "Восстанавливается только ключ идентичности. История сообщений и настройки требуют ZIP-архив резервной копии базы данных из раздела «О программе».",
+ "switch_after_restore_confirm": "Переключиться на восстановленную идентичность \"{name}\" сейчас?",
+ "identity_restore_empty_file": "Файл идентичности пуст.",
+ "identity_restore_file_too_large": "Файл идентичности слишком большой."
},
"contacts": {
"title": "Контакты",
@@ -1901,10 +1901,10 @@
"forwarding_to": "Пересылка на: {hash}",
"source_filter_display": "Фильтр источника: {hash}",
"delete_confirm": "Вы уверены, что хотите удалить это правило?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "Хеш пересылки должен быть 32-значным шестнадцатеричным значением",
+ "send_failed": "Не удалось отправить обновление пересылки (WebSocket отключён)",
+ "rule_added": "Правило пересылки добавлено",
+ "rule_deleted": "Правило пересылки удалено"
},
"archives": {
"description": "Поиск страниц Nomad, сохранённых в локальном архиве.",
@@ -2036,10 +2036,10 @@
"purge_confirm": "Очистить все очереди объявлений? Это действие необратимо.",
"queues_purged": "Очереди объявлений очищены",
"failed_purge": "Не удалось очистить очереди",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "Путь запрошен для {hash}...",
+ "drop_confirm": "Удалить путь к {hash}?",
+ "drop_via_confirm": "Удалить ВСЕ пути через {hash}?",
+ "invalid_hops": "Фильтр шагов должен быть числом"
},
"rnpath_trace": {
"title": "RNS Трассировка пути",
@@ -2067,10 +2067,10 @@
"propagation_nodes": {
"title": "Узлы распространения",
"description": "Выбор предпочтительных узлов распространения, просмотр статистики в реальном времени и быстрая проверка маршрутов.",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "Не удалось загрузить узлы распространения",
+ "local_restarted": "Локальный узел распространения перезапущен",
+ "local_stopped": "Локальный узел распространения остановлен",
+ "local_started": "Локальный узел распространения запущен"
},
"sieve_filters": {
"title": "Сито-фильтры",
@@ -2686,9 +2686,9 @@
"outgoing_announces": "Исходящие анонсы",
"airtime": "Эфирное время",
"channel_load": "Загрузка канала",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "Чёрная дыра: {state}",
+ "blackhole_publishing": "Публикация",
+ "blackhole_inactive": "Неактивно"
},
"translator": {
"text_translation": "Перевод текста",
@@ -3038,13 +3038,13 @@
"propagation_enable_auto": "Включить автонастройку",
"propagation_skip_auto": "Ручная настройка",
"auto_propagation_enabled": "Авторетрансляция включена",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "Файл идентичности пуст.",
+ "identity_import_file_too_large": "Файл идентичности слишком большой.",
+ "identity_import_key_only_hint": "Импортируется только ключ идентичности. Для восстановления сообщений и настроек используйте «О программе» → «Восстановить из файла» с ZIP-архивом резервной копии базы данных.",
+ "identity_file_overrides_base32": "Выбранный файл будет использован вместо вставленного ключа base32.",
+ "identity_import_pending_activate": "Вы импортировали идентичность, но ещё не активировали её. Активировать сейчас?",
+ "identity_import_pending_kept": "Импортированная идентичность сохранена, но не активирована. Переключитесь на неё позже в разделе «Идентичности».",
+ "identity_default_delete_failed": "Импортированная идентичность активна, но идентичность по умолчанию не может быть удалена."
},
"command_palette": {
"search_placeholder": "Команды, маршруты или узлы",
diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json
index 30c1dd4e..f2c57400 100644
--- a/meshchatx/src/frontend/locales/zh.json
+++ b/meshchatx/src/frontend/locales/zh.json
@@ -972,10 +972,10 @@
"identity_restore_failed": "身份恢复失败",
"no_identity_available": "无可用身份",
"message_count": "{count} 条消息",
- "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
- "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
- "identity_restore_empty_file": "Identity file is empty.",
- "identity_restore_file_too_large": "Identity file is too large."
+ "import_key_only_hint": "此操作仅恢复身份密钥。消息历史记录和设置需要通过「关于」中的数据库备份 ZIP 来恢复。",
+ "switch_after_restore_confirm": "立即切换到已恢复的身份 \"{name}\"?",
+ "identity_restore_empty_file": "身份文件为空。",
+ "identity_restore_file_too_large": "身份文件太大。"
},
"about": {
"title": "关于",
@@ -2018,10 +2018,10 @@
"forwarding_to": "转发至:{hash}",
"source_filter_display": "源过滤器:{hash}",
"delete_confirm": "您确定要删除此规则吗 ?",
- "invalid_hash": "Forward-to hash must be a 32-character hex value",
- "send_failed": "Could not send forwarding update (websocket disconnected)",
- "rule_added": "Forwarding rule added",
- "rule_deleted": "Forwarding rule deleted"
+ "invalid_hash": "转发哈希必须是 32 个字符的十六进制值",
+ "send_failed": "无法发送转发更新(WebSocket 已断开)",
+ "rule_added": "转发规则已添加",
+ "rule_deleted": "转发规则已删除"
},
"archives": {
"description": "搜索游牧网络页面存储在您的本地档案中 。",
@@ -2153,10 +2153,10 @@
"purge_confirm": "清除全部宣布队列吗 ? 这一点是无法消除的。",
"queues_purged": "宣布队列已清除",
"failed_purge": "清除队列失败",
- "path_requested": "Path requested for {hash}...",
- "drop_confirm": "Are you sure you want to drop the path to {hash}?",
- "drop_via_confirm": "Drop ALL paths via {hash}?",
- "invalid_hops": "Hops filter must be a number"
+ "path_requested": "已请求 {hash} 的路径...",
+ "drop_confirm": "确定要删除到 {hash} 的路径吗?",
+ "drop_via_confirm": "删除所有经过 {hash} 的路径?",
+ "invalid_hops": "跳数过滤必须是一个数字"
},
"rnpath_trace": {
"title": "RNS 路径",
@@ -2184,10 +2184,10 @@
"propagation_nodes": {
"title": "传播节点",
"description": "选择偏好的传播节点,查看实时统计数据并快速检查路径。",
- "load_failed": "Failed to load propagation nodes",
- "local_restarted": "Local propagation node restarted",
- "local_stopped": "Local propagation node stopped",
- "local_started": "Local propagation node started"
+ "load_failed": "加载传播节点失败",
+ "local_restarted": "本地传播节点已重启",
+ "local_stopped": "本地传播节点已停止",
+ "local_started": "本地传播节点已启动"
},
"sieve_filters": {
"title": "筛选规则",
@@ -2803,9 +2803,9 @@
"outgoing_announces": "出站广播",
"airtime": "占用时长",
"channel_load": "信道负载",
- "blackhole_label": "Blackhole: {state}",
- "blackhole_publishing": "Publishing",
- "blackhole_inactive": "Inactive"
+ "blackhole_label": "黑洞:{state}",
+ "blackhole_publishing": "发布中",
+ "blackhole_inactive": "未激活"
},
"translator": {
"text_translation": "文本翻译",
@@ -3207,13 +3207,13 @@
"propagation_enable_auto": "启用自动配置",
"propagation_skip_auto": "手动配置/跳过",
"auto_propagation_enabled": "已启用自动传播",
- "identity_import_empty_file": "Identity file is empty.",
- "identity_import_file_too_large": "Identity file is too large.",
- "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
- "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
- "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
- "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
- "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
+ "identity_import_empty_file": "身份文件为空。",
+ "identity_import_file_too_large": "身份文件太大。",
+ "identity_import_key_only_hint": "此操作仅导入您的身份密钥。要恢复消息和设置,请使用「关于」→「从文件恢复」并使用数据库备份 ZIP。",
+ "identity_file_overrides_base32": "选中的文件将替代粘贴的 base32 密钥使用。",
+ "identity_import_pending_activate": "您已导入一个身份但尚未激活。立即激活?",
+ "identity_import_pending_kept": "导入的身份已保存但未激活。稍后可在「身份」中切换。",
+ "identity_default_delete_failed": "导入的身份已激活,但无法删除默认身份。"
},
"command_palette": {
"search_placeholder": "搜索命令、路径或端点",
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────